﻿/*
 Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
        CKEDITOR.dialog.add("textfield", function(b) {
            function e(a) {
                var a = a.element, c = this.getValue();
                c ? a.setAttribute(this.id, c) : a.removeAttribute(this.id)
            }
            function f(a) {
                this.setValue(a.hasAttribute(this.id) && a.getAttribute(this.id) || "")
            }
            var g = {email: 1, password: 1, search: 1, tel: 1, text: 1, url: 1};
            return{title: b.lang.forms.textfield.title, minWidth: 350, minHeight: 150, onShow: function() {
                    delete this.textField;
                    var a = this.getParentEditor().getSelection().getSelectedElement();
                    if (a && "input" == a.getName() && (g[a.getAttribute("type")] ||
                            !a.getAttribute("type")))
                        this.textField = a, this.setupContent(a)
                }, onOk: function() {
                    var a = this.getParentEditor(), c = this.textField, b = !c;
                    b && (c = a.document.createElement("input"), c.setAttribute("type", "text"));
                    c = {element: c};
                    b && a.insertElement(c.element);
                    this.commitContent(c);
                    b || a.getSelection().selectElement(c.element)
                }, onLoad: function() {
                    this.foreach(function(a) {
                        if (a.getValue && (a.setup || (a.setup = f), !a.commit))
                            a.commit = e
                    })
                }, contents: [{id: "info", label: b.lang.forms.textfield.title, title: b.lang.forms.textfield.title,
                        elements: [{type: "hbox", widths: ["50%", "50%"], children: [{id: "_cke_saved_name", type: "text", label: b.lang.forms.textfield.name, "default": "", accessKey: "N", setup: function(a) {
                                            this.setValue(a.data("cke-saved-name") || a.getAttribute("name") || "")
                                        }, commit: function(a) {
                                            a = a.element;
                                            this.getValue() ? a.data("cke-saved-name", this.getValue()) : (a.data("cke-saved-name", !1), a.removeAttribute("name"))
                                        }}, {id: "value", type: "text", label: b.lang.forms.textfield.value, "default": "", accessKey: "V", commit: function(a) {
                                            if (CKEDITOR.env.ie &&
                                                    !this.getValue()) {
                                                var c = a.element, d = new CKEDITOR.dom.element("input", b.document);
                                                c.copyAttributes(d, {value: 1});
                                                d.replace(c);
                                                a.element = d
                                            } else
                                                e.call(this, a)
                                        }}]}, {type: "hbox", widths: ["50%", "50%"], children: [{id: "size", type: "text", label: b.lang.forms.textfield.charWidth, "default": "", accessKey: "C", style: "width:50px", validate: CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed)}, {id: "maxLength", type: "text", label: b.lang.forms.textfield.maxChars, "default": "", accessKey: "M", style: "width:50px",
                                        validate: CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed)}], onLoad: function() {
                                    CKEDITOR.env.ie7Compat && this.getElement().setStyle("zoom", "100%")
                                }}, {id: "type", type: "select", label: b.lang.forms.textfield.type, "default": "text", accessKey: "M", items: [[b.lang.forms.textfield.typeEmail, "email"], [b.lang.forms.textfield.typePass, "password"], [b.lang.forms.textfield.typeSearch, "search"], [b.lang.forms.textfield.typeTel, "tel"], [b.lang.forms.textfield.typeText, "text"], [b.lang.forms.textfield.typeUrl,
                                        "url"]], setup: function(a) {
                                    this.setValue(a.getAttribute("type"))
                                }, commit: function(a) {
                                    var c = a.element;
                                    if (CKEDITOR.env.ie) {
                                        var d = c.getAttribute("type"), e = this.getValue();
                                        d != e && (d = CKEDITOR.dom.element.createFromHtml('<input type="' + e + '"></input>', b.document), c.copyAttributes(d, {type: 1}), d.replace(c), a.element = d)
                                    } else
                                        c.setAttribute("type", this.getValue())
                                }}]}]}
        });